package net.pragyah.scalby

import net.pragyah.scalgorithms.graphs._


/*
 * This class helps determineing whether two DAGs are markov equivalent.
 * The algorithm is based on Theorem 2.4 of the book "Learning Bayesian Networks" by Richard E. Neapolitan
 * 
 * Theorem 2.4 Two DAGs G1 and G2 are markov equivalent if and only if they have the same 
 * links (edges without regard for direction) and the same set of uncoupled head-to-head meetings
 * 
 */
class MarkovEquivalance[A] {
  
  //determins if the two graphs are markov equivalent or not
  def areEquivalent(G1:Graph[A],G2:Graph[A]): boolean = {
    
    assume(G1.directed && G2.directed)
    // TODO .. find out if they are acyclic or not .... use Bellman-Ford Algo OR something similar
    
    //TODO
    
    
    false
  }

}
